perfc_decr(shadow_l1_pages);
shadow_demote(d, gpfn, gmfn);
free_shadow_l1_table(d, smfn);
+ d->arch.shadow_page_count--;
break;
case PGT_l2_shadow:
perfc_decr(shadow_l2_pages);
shadow_demote(d, gpfn, gmfn);
free_shadow_l2_table(d, smfn, page->u.inuse.type_info);
+ d->arch.shadow_page_count--;
break;
case PGT_hl2_shadow:
perfc_decr(hl2_table_pages);
shadow_demote(d, gpfn, gmfn);
free_shadow_hl2_table(d, smfn);
+ d->arch.hl2_page_count--;
break;
case PGT_snapshot:
perfc_decr(snapshot_pages);
+ d->arch.snapshot_page_count--;
break;
default:
break;
}
- d->arch.shadow_page_count--;
-
// No TLB flushes are needed the next time this page gets allocated.
//
page->tlbflush_timestamp = 0;
perfc_decr(shadow_l1_pages);
shadow_demote(d, gpfn, gmfn);
free_shadow_l1_table(d, smfn);
+ d->arch.shadow_page_count--;
break;
#if defined (__i386__)
case PGT_l2_shadow:
perfc_decr(shadow_l2_pages);
shadow_demote(d, gpfn, gmfn);
free_shadow_l2_table(d, smfn, page->u.inuse.type_info);
+ d->arch.shadow_page_count--;
break;
case PGT_hl2_shadow:
perfc_decr(hl2_table_pages);
shadow_demote(d, gpfn, gmfn);
free_shadow_hl2_table(d, smfn);
+ d->arch.hl2_page_count--;
break;
#else
case PGT_l2_shadow:
case PGT_l4_shadow:
shadow_demote(d, gpfn, gmfn);
free_shadow_tables(d, smfn, shadow_type_to_level(type));
+ d->arch.shadow_page_count--;
break;
case PGT_fl1_shadow:
free_shadow_fl1_table(d, smfn);
+ d->arch.shadow_page_count--;
break;
-
#endif
case PGT_snapshot:
break;
}
- d->arch.shadow_page_count--;
-
// No TLB flushes are needed the next time this page gets allocated.
//
page->tlbflush_timestamp = 0;